const chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

const random = function generateMixed (n) {
    var res = ''
    for (var i = 0; i < n; i++) {
        var id = Math.ceil(Math.random() * 35)
        res += chars[id]
    }
    return res
}

const promisic = function (func) {
    return function (params = {}) {
        return new Promise((resolve, reject) => {
            const args = Object.assign(params, {
                success: (res) => {
                    // console.log(res)
                    // console.log(2222)
                    resolve(res)
                },
                fail: (error) => {
                    reject(error)
                }
            })
            func(args)
        })
    }
}

const promisic2 = function (func) {
    // return function () {
    return new Promise((resolve, reject) => {
        const args = {
            success: (res) => {
                // console.log(res)
                // console.log(2222)
                resolve(res)
            },
            fail: (error) => {
                reject(error)
            }
        }
        func(args)
    })
    // }
}

// 推导上边的函数

let _getUserInfo = function (resolve, reject) {
    wx.getUserInfo({
        success: (res) => {
            resolve(res)
        },
        fail: (err) => {
            reject(err)
        }
    })
}

let _getSetting = function (resolve, reject) {
    wx.getSetting({
        success: (res) => {
            resolve(res)
        },
        fail: (err) => {
            reject(err)
        }
    })
}
let proGetUserInfo = function () {
    return new Promise((resolve, reject) => {
        this._getUserInfo(resolve, reject)
    })
}

let proGetSetting = function () {
    return new Promise((resolve, reject) => {
        this._getSetting(resolve, reject)
    })
}

export { random, promisic, promisic2 }
